// 'use strict'
// var _ = require('underscore')
// var fs = require('fs')
// var path = require('path')
// var Promise = require('bluebird')
// var request = Promise.promisify(require('request'))
// var cheerio = require("cheerio")
// var async = require("async")
// var eventproxy = require('eventproxy')
// var parallel = require('co-parallel')
// var co = require('co')
// var filePath = path.join(__dirname,'./../../dizhi/bisi.txt')
// var util = require('./../../libs/util');
 
// var ep = new eventproxy(),
//     urlsArray = [], //存放爬取网址
//     pageUrls = [],  //存放收集文章页面网站
//     flag = 0,
//     renderArr = [],
//     pageNum = 200;  //要爬取文章的页数
 
// for(var i=1 ; i<= 2000; i++){
//     //pageUrls.push('http://174.138.175.178/forum-2-'+i+'.html')
//     pageUrls.push('http://hk-pic1.xyz/forum-454-'+i+'.html')
// }
 
// exports.start= function *(next){
//     var self = this;
//         // 轮询 所有文章列表页
//     function* status(pageUrl) {
//           var response = yield request({url:pageUrl});
//           var $ = cheerio.load(response.body);
//           var curPageUrls = $('a.xst');//xi2
            
//           var curPageHotNum = $('.xi2');

//           for(var i = 0 ; i < curPageUrls.length ; i++){
//               var num = curPageHotNum.eq(i).text();
//               var articleTitle = curPageUrls.eq(i).text();

//               if(articleTitle.indexOf('丝')>0){
//                 //console.log(articleTitle);
//                 var articleUrl = 'http://174.138.175.178/'+curPageUrls.eq(i).attr('href');
                
//                 urlsArray.push({title:articleTitle,url:articleUrl,num:num});
//                 // 相当于一个计数器
//                 //ep.emit('BlogArticleHtml', {url:articleUrl,num:num});
//               }else{
//                 continue
//               }
//           }
        
//       //return (yield request(url)).statusCode;
//     }
//     var test = new Promise(function(resolve,reject){
//       co(function* () {
//         var reqs = pageUrls.map(status);
//         var res = yield parallel(reqs, 5);
//         resolve(res);
//       });
//     })
//     var readArray =  (yield util.readFileAsync(filePath,'utf-8')) || JSON.stringify([])
//     readArray = JSON.parse(readArray)
//     if(readArray.length){
//       yield self.render('pages/crawler',{
//         lists: readArray
//       })
//     }else{
//       yield test;
//       yield util.writeFileYibu(filePath,JSON.stringify(urlsArray))
//       console.log('爬取完成啦!')
//     }
    

//     // yield self.render('pages/crawler',{
//     //     lists: urlsArray
//     //   })
//     // pageUrls.forEach(function(pageUrl){
//     // 	if(flag<2){
// 	   //  	request({url:pageUrl}).then(function(response){
//   		// 		var $ = cheerio.load(response.body);
//   		// 		var curPageUrls = $('a.xst');//xi2
          
//   		// 		var curPageHotNum = $('.xi2');

//   		// 		for(var i = 0 ; i < curPageUrls.length ; i++){
//   		// 		  var num = curPageHotNum.eq(i).text();
//   		// 		  var articleTitle = curPageUrls.eq(i).text();
//   		// 		  if(articleTitle.indexOf('丝')>0 && num>500){
//   		// 		  	flag++;

//   		// 		  	var articleUrl = curPageUrls.eq(i).attr('href');
  				  	
//   		// 		  	urlsArray.push(articleUrl);
//   		// 		  	// 相当于一个计数器
//   		// 		  	//ep.emit('BlogArticleHtml', {url:articleUrl,num:num});
//   		// 		  }else{
//   		// 		  	continue
//   		// 		  }
  				  
//   		// 		}

//   		// 	})
//     // 	}else{
//     //     this.body = {arr: urlsArray}
//     //   }
    	
//     //     // superagent.get(pageUrl)
//     //     //     .end(function(err,pres){
//     //     //   // pres.text 里面存储着请求返回的 html 内容，将它传给 cheerio.load 之后
//     //     //   // 就可以得到一个实现了 jquery 接口的变量，我们习惯性地将它命名为 `$`
//     //     //   // 剩下就都是利用$ 使用 jquery 的语法了
//     //     //   var $ = cheerio.load(pres.text);
//     //     //   var curPageUrls = $('.titlelnk');

//     //     //   for(var i = 0 ; i < curPageUrls.length ; i++){
//     //     //     var articleUrl = curPageUrls.eq(i).attr('href');
//     //     //     urlsArray.push(articleUrl);
//     //     //     // 相当于一个计数器
//     //     //     ep.emit('BlogArticleHtml', articleUrl);
//     //     //   }
//     //     // });
//     // });

//     // ep.after('BlogArticleHtml',500,function(articleUrls){
//     //     // 当所有 'BlogArticleHtml' 事件完成后的回调触发下面事件
//     //     // 控制并发数
//     //     var curCount = 0;
//     //     var reptileMove = function(obj,callback){
//     //         //延迟毫秒数
//     //       var delay = parseInt((Math.random() * 30000000) % 1000, 10);
//     //       curCount++;
//     //       console.log('现在的并发数是', curCount, '，正在抓取的是', url, '，耗时' + delay + '毫秒'); 
//     //       request({url:obj.url}).then(function(response){
//     //       	var $ = cheerio.load(response);
//     //       	var img = $("ignore_js_op>img").eq(0).attr('src');
//     //       	obj.src = img;
//     //       	renderArr.push(obj);
//     //       })
//     //       // superagent.get(url)   ignore_js_op
//     //       // .end(function(err,sres){
//     //       //     // sres.text 里面存储着请求返回的 html 内容
//     //       //     var $ = cheerio.load(sres.text);
//     //       //     // 收集数据
//     //       //     // 拼接URL
//     //       //     var currentBlogApp = url.split('/p/')[0].split('/')[3],
//     //       //         appUrl = "http://www.cnblogs.com/mvc/blog/news.aspx?blogApp="+ currentBlogApp;
//     //       //     // 具体收集函数
//     //       //     personInfo(appUrl);
//     //       // });
       
//     //       setTimeout(function() {
//     //           curCount--;
//     //           callback(null,'Call back content');
//     //       }, delay);     
//     //     };
     
//     //     // 使用async控制异步抓取   
//     //     // mapLimit(arr, limit, iterator, [callback])
//     //     // 异步回调
//     //     async.mapLimit(articleUrls, 5 ,function (obj, callback) {
//     //           reptileMove(obj, callback);
//     //         }, function (err,result) {
//     //         	this.body=renderArr;
//     //         	// (function*(){
//     //         	// 	yield this.render('pages/crawler',{
//     //         	// 		lists: renderArr
//     //         	// 	})
//     //         	// })()
//     //     });
//     // })
// }

